
# 1. 请写出列表支持的所有方法及说明（例如: append 向列表末尾添加元素）
# 2. 说明列表的浅拷贝和深拷贝的区别
# 3. 说明列表和元组的相同点和不同点
# 4. 请写出字符串支持的所有方法及说明（例如: lower 返回字符串的小写）
# 5. 有如下一个字符串变量logs，请统计出每种请求类型的数量（提示：空格分割的第2列是请求类型），得到如下输出：
# POST 2
# GET 3
#
# 下边是logs变量：
# logs = '''
# 111.30.144.7 "POST /mock/login/?t=GET HTTP/1.1" 200
# 111.30.144.7 "Get /mock/users/?t=POST HTTP/1.1" 200
# 111.13.100.92 "Post /mock/login/ HTTP/1.1" 200
# 223.88.60.88 "GET /mock/users/?t=POST HTTP/1.1" 200
# 111.30.144.7 "GET /mock/users/ HTTP/1.1" 200
# '''


'''
1、增
(1)append像列表末尾添加单个元素
(2)insert在指定索引处插入单个元素
(3)extend向指定列表中追加内容
a=[1,2,3,4,5]
a.extend('abc')
a=[1,2,3,4,5,'a','b','c']

2、删
(1)pop弹出（删除并返回）一个元素，默认弹出最后一个元素，也可以弹出给定下标对应的元素
(2)remove列表中啊通过值来删除一个给定的元素，如果该值出现了多次，那么只会删除第一次出现的

3、改
(1)reverse原地翻转列表
(2)sort给列表排序，默认升序，通过reverse=True来实现降序  a.sort(reverse=True)

4、查
index获取元素第一次1出现的下标
'''


# 2、深拷贝是对原对象地址的拷贝，拷贝的是与原对象地址不同的对象，修改原对象中的值不会影响新拷贝对象的值
# 浅拷贝是拷贝原对象的值，如果改变原对象的值，那么拷贝对象的值也会随之改变

# 3、列表和元组的相同点：都属于序列，都是按照特定顺序存储一组元素，都可以包含整数、实数、字符串、列表、元组、字典、集合等任何类型的内容，创建和删除的方法也是一样。
#    列表和元组的不同点：列表是动态的，属于可变序列，而元组是静态的，属于不可变序列，无法增加删除修改元素，除非整体替换。
#    列表可以使用切片访问和修改列表中的元素，元组也支持切片，但是它只能通过切片访问元组的中的元素，不支持修改；列表不能作为字典的键，而元组可以。

# 4、
# (1)大小写转换
# S.lower()   将大写S转换成小写s
# S.upper()   将小写s转换成大写S
# S.title()   返回S字符串中所有单词首字母大写且其他字母小写
# S.capitalize()   返回首字母大写、其他字母全部小写
# S.swapcase()    对S中的所有字符串做大小写转换(大写-->小写，小写-->大写)
# str.strip()   去除字符
# str.lstrip()  去除左端的字符
# str.rsplit()  去除右端的字符
# str.split()   默认使用空格作为分隔符，将字符串分隔开，也可以指定分隔符
# str,replace() 替换字符串
# str.islower() 全是小写则返回True，不考虑非字母字符
# str.isupper() 全是大写则返回True，不考虑非字母字符
# str.isdigit() 所有字符全是数字返回True
# str.ljust()   字符串左对齐
# str.rjust()   字符串右对齐
# str.center()  字符串居中
# str.startswith() 判断字符串以哪些字符开头
# str.endswith()   判断字符串以哪些字符结尾

logs = '''
111.30.144.7 "POST /mock/login/?t=GET HTTP/1.1" 200 
111.30.144.7 "Get /mock/users/?t=POST HTTP/1.1" 200 
111.13.100.92 "Post /mock/login/ HTTP/1.1" 200 
223.88.60.88 "GET /mock/users/?t=POST HTTP/1.1" 200 
111.30.144.7 "GET /mock/users/ HTTP/1.1" 200 
'''


logs1 = logs.upper().split(' ')
logs3 = []
for i in logs1:
    if i == '"POST' or i == '"GET':
        logs3.append(i)
#print(logs3)
print('POST {}'.format(logs3.count('"POST')))
print('POST {}'.format(logs3.count('"GET')))